<%@page import="Utilidades.Base64"%>
<%@page import="Servidor.DataPerfil"%>
<%@page import="Utilidades.UploadArchivos"%>
<%@page import="Servidor.PDate"%>
<%@page import="Utilidades.MD5"%>
<%@ page contentType="text/html; charset=UTF-8" session = "true"%>
<%@page import="java.io.File"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.GregorianCalendar"%>
<%@page import="java.util.Iterator"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="java.util.List"%>
<%@page import="java.util.List"%>
<%@include file = "cargarLogica.jsp" %>

<html>
<body style = "background: #75A319">

<%
    if(iw!=null){
        
        try{

            String nick = null;
            String email = null;
            String password = null;
            String tipo = null;
            String nombre = null;
            String apellido = null;
            Integer dia = null;
            Integer mes = null;
            Integer año = null;
            String web = null;           

            UploadArchivos ua = new UploadArchivos(request);       

            List<FileItem> listaComponentes = ua.getComponentes();

            Iterator<FileItem> itComponentes = listaComponentes.iterator();

            while(itComponentes.hasNext()){

                FileItem item = itComponentes.next();

                if(item.getFieldName().equals("TF_Nick")){

                    nick = item.getString();

                }

                else if(item.getFieldName().equals("TF_Email")){

                    email = item.getString();

                }

                else if(item.getFieldName().equals("TF_Password")){

                    password = item.getString();

                }

                else if(item.getFieldName().equals("S_Tipo")){

                    tipo = item.getString();

                }

                else if(item.getFieldName().equals("TF_Nombre")){

                    nombre = item.getString();

                }

                else if(item.getFieldName().equals("TF_Apellido")){

                    apellido = item.getString();

                }

                else if(item.getFieldName().equals("S_Dia")){

                    dia = Integer.parseInt(item.getString());

                }

                else if(item.getFieldName().equals("S_Mes")){

                    mes = Integer.parseInt(item.getString());

                }

                else if(item.getFieldName().equals("S_Year")){

                    año = Integer.parseInt(item.getString());

                }

                else if(item.getFieldName().equals("TF_Web")){

                    web = item.getString();

                }

            }

            MD5 encriptar = new MD5();
            password = encriptar.md5(password);

            GregorianCalendar gc = new GregorianCalendar();
            gc.setTime(new Date());

            Integer añoactual = gc.get(GregorianCalendar.YEAR);
            Integer mesactual = gc.get(GregorianCalendar.MONTH);
            Integer diaActual = gc.get(GregorianCalendar.DAY_OF_MONTH);

            Integer añoseleccionado = año;
            Integer messelect = mes;
            Integer diaselect = dia;

            Integer edad;

            if(messelect >= mesactual){

                if(messelect == mesactual && diaselect == diaActual){

                    edad = añoactual - añoseleccionado;

                }

                else{

                    edad = añoactual - añoseleccionado - 1;

                }   

            }

            else{

                edad = añoactual - añoseleccionado;

            }

            PDate fnac = new PDate();
            fnac.setDay(dia.toString());
            fnac.setMonth(mes.toString());
            fnac.setYear(año.toString());

            byte [] imagen = null;
            String nombreImagen = null;
            DataPerfil dp = null;

            if(web == null){

                List<FileItem> listaArchivos = ua.getArchivos();
                Iterator<FileItem> itArchivos = listaArchivos.iterator();

                while(itArchivos.hasNext()){

                    FileItem fi = itArchivos.next();
                    nombreImagen = "IMGP_" + nick;
                    imagen = fi.get();

                }

                dp = new DataPerfil();
                dp.setPassword(password);
                dp.setNick(nick);
                dp.setEmail(email);
                dp.setTipoperfil(tipo);
                dp.setNombre(nombre);
                dp.setApellido(apellido);
                dp.setFechanac(fnac);
                dp.setEdad(edad);
                dp.setImagen("Data/Perfiles/Desarrolladores/" + nick + "/Imagen_Perfil/" + nombreImagen);
                dp.setSitioweb(web);
                
                String base64 = Base64.encodeBytes(imagen);
                
                dp.setImg(base64);
                
                ip.darAltaPerfil(dp);

            }

            else{

                String path = getServletContext().getRealPath("") + "/Data/Perfiles/Desarrolladores/" + nick + "/Imagen_Perfil";
                File directorio = new File(path);
                directorio.mkdirs();

                List<FileItem> listaArchivos = ua.getArchivos();
                Iterator<FileItem> itArchivos = listaArchivos.iterator();

                while(itArchivos.hasNext()){

                    FileItem fi = itArchivos.next();
                    nombreImagen = "IMGP_" + nick;
                    imagen = fi.get();

                }

                dp = new DataPerfil();
                dp.setPassword(password);
                dp.setNick(nick);
                dp.setEmail(email);
                dp.setTipoperfil(tipo);
                dp.setNombre(nombre);
                dp.setApellido(apellido);
                dp.setFechanac(fnac);
                dp.setEdad(edad);
                dp.setImagen("Data/Perfiles/Desarrolladores/" + nick + "/Imagen_Perfil/" + nombreImagen);
                dp.setSitioweb(web);
                
                String base64 = Base64.encodeBytes(imagen);
                
                dp.setImg(base64);
                
                ip.darAltaPerfil(dp);

            }

            session = request.getSession();
            session.setAttribute("usuario", dp);

            %><script>alert("Operación realizada con éxito!"); window.location.href = "/TPlay_Market_Web";</script><%

        }

        catch(Exception e){

            response.sendRedirect("/TPlay_Market_Web");

        }
        
    }
    
    else{

        response.sendRedirect("/TPlay_Market_Web");

    }
    
%>

</body>
</html>